package com.yanhui.utils.string;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class _substringUtils {
	
	/**
     * 去除html代码中含有的标签
     * @param htmlStr
     * @return
     */
    public static String delHtmlTags(String htmlStr) {
        //定义script的正则表达式，去除js可以防止注入
        String scriptRegex="<script[^>]*?>[\\s\\S]*?<\\/script>";
        //定义style的正则表达式，去除style样式，防止css代码过多时只截取到css样式代码
        String styleRegex="<style[^>]*?>[\\s\\S]*?<\\/style>";
        //定义HTML标签的正则表达式，去除标签，只提取文字内容
        String htmlRegex="<[^>]+>";
        //定义空格,回车,换行符,制表符
        String spaceRegex = "\\s*|\t|\r|\n";
 
        // 过滤script标签
        htmlStr = htmlStr.replaceAll(scriptRegex, "");
        // 过滤style标签
        htmlStr = htmlStr.replaceAll(styleRegex, "");
        // 过滤html标签
        htmlStr = htmlStr.replaceAll(htmlRegex, "");
        // 过滤空格等
        htmlStr = htmlStr.replaceAll(spaceRegex, "");
        return htmlStr.trim(); // 返回文本字符串
    }
    /**
     * 获取HTML代码里的内容
     * @param htmlStr
     * @return
     */
    public static String getTextFromHtml(String htmlStr){
        //去除html标签
        htmlStr = delHtmlTags(htmlStr);
        //去除空格" "
        htmlStr = htmlStr.replaceAll(" ","");
        return htmlStr;
    }
 
//    public static void main(String[] args){
//        String htmlStr= "<script type>var i=1; alert(i)</script><style> .font1{font-size:12px}</style><span>少年中国说。</span>红日初升，其道大光。<h3>河出伏流，一泻汪洋。</h3>潜龙腾渊， 鳞爪飞扬。乳 虎啸  谷，百兽震惶。鹰隼试翼，风尘吸张。奇花初胎，矞矞皇皇。干将发硎，有作其芒。天戴其苍，地履其黄。纵有千古，横有" +
//                "八荒。<a href=\"www.baidu.com\">前途似海，来日方长</a>。<h1>美哉我少年中国，与天不老！</h1><p>壮哉我中国少年，与国无疆！</p>";
//        System.out.println(getTextFromHtml(htmlStr));
//    }

	
	
	/**
	 * 正则表达式匹配两个指定字符串中间的内容
	 * @param soap
	 * @return
	 */
	public static List<String> getSubUtil(String soap,String rgex){
		List<String> list = new ArrayList<String>();
		Pattern pattern = Pattern.compile(rgex);// 匹配的模式
		Matcher m = pattern.matcher(soap);
		while (m.find()) {
			int i = 1;
			list.add(m.group(i));
			i++;
		}
		return list;
	}

	/**
	 * 返回单个字符串，若匹配到多个的话就返回第一个，方法与getSubUtil一样
	 * @param soap
	 * @param rgex
	 * @return
	 */
	public static String getSubUtilSimple(String soap,String rgex){
		Pattern pattern = Pattern.compile(rgex);// 匹配的模式
		Matcher m = pattern.matcher(soap);
		while(m.find()){
			return m.group(1);
		}
		return "";
	}

	public static void main(String[] args) {
		String png = "";
		String data = "<gldxshop>" + 
				/*"<id></id>" + */
				"<id>3e0031a519f94119ac3127e803df851f</id>" + 
				/*"<name></name>" +*/
				"<jyxkz>282932</jyxkz>" + 
				"<date>2018-06-04</date>" + 
				"<enddate>2019-06-20</enddate>" + 
				"<jyxkz_pic>"+png+"</jyxkz_pic>" + 
				"<headman>张林</headman>" + 
				"<headphone>18824699669</headphone>" + 
				"<linkman>张林</linkman>" + 
				"<linkphone>18824699669</linkphone>" + 
				"<address>同乐路1号</address>" + 
				"<yjdz>同乐路1号</yjdz>" + 
				"<postcode>510510</postcode>" + 
				"<issd>0</issd>" + 
				"<dpmj>50</dpmj>" + 
				"<jyfw>毒药</jyfw>" + 
				"<isxzshop>1</isxzshop>" + 
				"<fzdw>同乐路1号</fzdw>" + 
				"<account>test123</account>" + 
				"<password>123</password>" + 
				"<province>广东省</province>" + 
				"<city>广州市</city>" + 
				"<country>天河区</country>" + 
				"<town>五山街</town>" + 
				"<provincecode>44</provincecode>" + 
				"<citycode>4401</citycode>" + 
				"<countrycode>440106</countrycode>" + 
				"<towncode>44010602</towncode>" + 
				"</gldxshop>";
		String rgex = "<jyxkz_pic>(.*?)</jyxkz_pic>";
		System.out.println(getSubUtil(data,rgex));
		System.out.println(getSubUtilSimple(data, rgex));
	}

}
